<?php
namespace Admin\Controller;
use Think\Controller;
class CatsController extends CommonController {
	
	//显示分类列表
    public function index(){
    	$cats=D('Cats');

    	//查询个数
        $count=$cats->count();
      //每页显示10个
          $page = new \Think\Page($count,10);
      //设置页码显示
          $page->setConfig('header', '共 %TOTAL_ROW% 条记录');
          $page->setConfig('first', '首页');
          $page->setConfig('last', '末页');
          $page->setConfig('prev','上一页');
          $page->setConfig('next','下一页');
          $page->setConfig('theme',"共 %TOTAL_ROW% 条记录 %FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END%");

          $search=I('post.search');
          $a="";
          if($search){
          	$this->assign('show', $a);
          }else{
          	$this->assign('show', $page->show());
          }
          
          if($search){
          	$data = $cats->page(I('get.p',1), 10)->field("catsid,pid,catsname,path,des,concat(path,'-',catsid) as abspath")->order('abspath')->where('catsname="'.$search.'"')->select();
          }else{
          	$data = $cats->page(I('get.p',1), 10)->field("catsid,pid,catsname,path,des,concat(path,'-',catsid) as abspath")->order('abspath')->select();
          }

          // 3.分配数据
          $this->assign('data', $data);

       $this->display();
    }
	
	
	//添加分类页面
	public function add(){
		$this->display();
	}
	
	//添加子分类数据操作
	public function insert(){
		//实例化model类
		$cats=M('Cats');
		//创建对象
		$cats->create();
		// dump(I('post.'));	
		//添加数据
		if(!$_POST['catsname']){
			$this->success('请输入类名','index',3);
			die();
		}
		// 子分类的名字
		$arr['catsname']=I('post.catsname');
		// 子分类的pid
		$arr['pid']=I('post.pid');
		// 子分类的path
		$arr['path']=I('post.path').'-'.I('post.pid');
		// 子分类描述
		$arr['des']=I('post.des');
		// dump($arr);die();
		//向数据库添加子分类的信息
		$res=$cats->data($arr)->add();
		if($res){
			//添加成功，跳转到分类列表
			$this->success('添加分类成功！','index');
		}else{
			//添加失败，转回添加子分类页面
			$this->error('添加分类失败！','add');
		}
	}

	//添加顶级类
	public function insertTop(){
		//实例化model类
		$cats=M('Cats');
		//创建对象
		$cats->create();
		// dump(I('post.'));	
		//添加数据
		if(!$_POST['catsname']){
			$this->error('请输入类名','addTop',3);
			die();
		}
		// 顶级分类的名字
		$arr['catsname']=I('post.catsname');
		// 顶级分类描述
		$arr['des']=I('post.des');
		// 顶级分类的pid
		$arr['pid']=0;
		// 顶级分类的path
		$arr['path']=0;
		// dump($arr);die();
		//向数据库添加顶级分类的信息
		$res=$cats->data($arr)->add();
		if($res){
			//添加成功，跳转到分类列表
			$this->success('添加分类成功！','index');
		}else{
			//添加失败，转回添加顶级分类页面
			$this->error('添加分类失败！','addTop');
		}
	}
	
	//修改分类页面
	public function mod(){
		//接受分类id
		$catsid=I('get.catsid');

		// 查询原分类信息
		$cats=M('cats');
		$infoone=$cats->where('catsid='.$catsid)->find();
		//分配到模板中
		$this->assign('cats',$infoone);
		$this->display();
	}

	
	//修改分类数据操作
	public function update(){
		$cats=M('cats');
		//过滤非法信息
		$cats->create();
		//进行修改操作
		$res=$cats->save();
		// dump($res);die();
		if($res){
			$this->success('修改分类信息成功',U('Cats/mod','catsid='.I('post.catsid')));
		}else{
			$this->error('您未修改任何内容',U('Cats/mod','catsid='.I('post.catsid')));
		}
	}
	
	//删除分类页面
	public function delete(){
		$catsid=I('get.catsid');
		//接受用户传入的ID进行删除操作
		$cats=M('Cats');
		//如果分类下面有子分类，不允许删除；判断一个分类是否是终级分类，如果pid字段里面没有要删除的catsid，此分类就是终级分类
		$res=$cats->field('pid')->select();
		//定义一个空数组，存放每条分类的pid
		$pid=array();
		if($res){
			foreach($res as $k=>$v){
				$pid[]=$v['pid'];
			}
		}
		//将$pid数组里面的值变成唯一
		$newpid=array_unique($pid);
		if(in_array($catsid,$newpid)){
			$this->error('此分类下有子分类，不允许删除',U('Cats/index'));
			die();
		}
		//终极分类下面有商品，不能删除
		$goods=M('goods');
		$catsname=I('get.catsname');
		$rest=$goods->where('goodscats="'.$catsname.'"')->find();
		if($rest){
			$this->error('此分类下有商品，不允许删除',U('Cats/index'));
		}
		$result=$cats->delete($catsid);

		if($result){
			//删除成功
			$this->success('删除成功',U('Cats/index'));
		}else{
			$this->error('删除失败',U('Cats/index'));
		}
	}

}